import typing

from gi.repository import GLib
from gi.repository import GObject
from gi.repository import freetype2
T = typing.TypeVar("T")

AAT_LAYOUT_NO_SELECTOR_INDEX: int = 65535
BUFFER_REPLACEMENT_CODEPOINT_DEFAULT: int = 65533
FEATURE_GLOBAL_START: int = 0
LANGUAGE_INVALID = ... # FIXME Constant
MAP_VALUE_INVALID: int = 4294967295
OT_LAYOUT_DEFAULT_LANGUAGE_INDEX: int = 65535
OT_LAYOUT_NO_FEATURE_INDEX: int = 65535
OT_LAYOUT_NO_SCRIPT_INDEX: int = 65535
OT_LAYOUT_NO_VARIATIONS_INDEX: int = -1
OT_MAX_TAGS_PER_LANGUAGE: int = 3
OT_MAX_TAGS_PER_SCRIPT: int = 3
OT_VAR_NO_AXIS_INDEX: int = -1
SET_VALUE_INVALID: int = 4294967295
UNICODE_MAX: int = 1114111
UNICODE_MAX_DECOMPOSITION_LEN: int = 19
VERSION_MAJOR: int = 6
VERSION_MICRO: int = 0
VERSION_MINOR: int = 0
VERSION_STRING: str = "6.0.0"
_namespace: str = "HarfBuzz"
_version: str = "0.0"

def aat_layout_feature_type_get_name_id(face: face_t, feature_type: aat_layout_feature_type_t) -> int: ...
def aat_layout_feature_type_get_selector_infos(face: face_t, feature_type: aat_layout_feature_type_t, start_offset: int) -> typing.Tuple[int, list[aat_layout_feature_selector_info_t], int]: ...
def aat_layout_get_feature_types(face: face_t, start_offset: int) -> typing.Tuple[int, list[aat_layout_feature_type_t]]: ...
def aat_layout_has_positioning(face: face_t) -> int: ...
def aat_layout_has_substitution(face: face_t) -> int: ...
def aat_layout_has_tracking(face: face_t) -> int: ...
def blob_copy_writable_or_fail(blob: blob_t) -> blob_t: ...
def blob_create_from_file(file_name: str) -> blob_t: ...
def blob_create_from_file_or_fail(file_name: str) -> blob_t: ...
def blob_create_sub_blob(parent: blob_t, offset: int, length: int) -> blob_t: ...
def blob_get_data(blob: blob_t) -> typing.Optional[list[str]]: ...
def blob_get_data_writable(blob: blob_t) -> list[str]: ...
def blob_get_empty() -> blob_t: ...
def blob_get_length(blob: blob_t) -> int: ...
def blob_is_immutable(blob: blob_t) -> int: ...
def blob_make_immutable(blob: blob_t) -> None: ...
def buffer_add(buffer: buffer_t, codepoint: int, cluster: int) -> None: ...
def buffer_add_codepoints(buffer: buffer_t, text: typing.Sequence[int], item_offset: int, item_length: int) -> None: ...
def buffer_add_latin1(buffer: buffer_t, text: typing.Sequence[int], item_offset: int, item_length: int) -> None: ...
def buffer_add_utf16(buffer: buffer_t, text: typing.Sequence[int], item_offset: int, item_length: int) -> None: ...
def buffer_add_utf32(buffer: buffer_t, text: typing.Sequence[int], item_offset: int, item_length: int) -> None: ...
def buffer_add_utf8(buffer: buffer_t, text: typing.Sequence[int], item_offset: int, item_length: int) -> None: ...
def buffer_allocation_successful(buffer: buffer_t) -> int: ...
def buffer_append(buffer: buffer_t, source: buffer_t, start: int, end: int) -> None: ...
def buffer_clear_contents(buffer: buffer_t) -> None: ...
def buffer_create() -> buffer_t: ...
def buffer_create_similar(src: buffer_t) -> buffer_t: ...
def buffer_deserialize_glyphs(buffer: buffer_t, buf: typing.Sequence[str], font: typing.Optional[font_t], format: buffer_serialize_format_t) -> typing.Tuple[int, str]: ...
def buffer_deserialize_unicode(buffer: buffer_t, buf: typing.Sequence[str], format: buffer_serialize_format_t) -> typing.Tuple[int, str]: ...
def buffer_diff(buffer: buffer_t, reference: buffer_t, dottedcircle_glyph: int, position_fuzz: int) -> buffer_diff_flags_t: ...
def buffer_get_cluster_level(buffer: buffer_t) -> buffer_cluster_level_t: ...
def buffer_get_content_type(buffer: buffer_t) -> buffer_content_type_t: ...
def buffer_get_direction(buffer: buffer_t) -> direction_t: ...
def buffer_get_empty() -> buffer_t: ...
def buffer_get_flags(buffer: buffer_t) -> buffer_flags_t: ...
def buffer_get_glyph_infos(buffer: buffer_t) -> list[glyph_info_t]: ...
def buffer_get_glyph_positions(buffer: buffer_t) -> list[glyph_position_t]: ...
def buffer_get_invisible_glyph(buffer: buffer_t) -> int: ...
def buffer_get_language(buffer: buffer_t) -> language_t: ...
def buffer_get_length(buffer: buffer_t) -> int: ...
def buffer_get_not_found_glyph(buffer: buffer_t) -> int: ...
def buffer_get_replacement_codepoint(buffer: buffer_t) -> int: ...
def buffer_get_script(buffer: buffer_t) -> script_t: ...
def buffer_get_segment_properties(buffer: buffer_t) -> segment_properties_t: ...
def buffer_get_unicode_funcs(buffer: buffer_t) -> unicode_funcs_t: ...
def buffer_guess_segment_properties(buffer: buffer_t) -> None: ...
def buffer_has_positions(buffer: buffer_t) -> int: ...
def buffer_normalize_glyphs(buffer: buffer_t) -> None: ...
def buffer_pre_allocate(buffer: buffer_t, size: int) -> int: ...
def buffer_reset(buffer: buffer_t) -> None: ...
def buffer_reverse(buffer: buffer_t) -> None: ...
def buffer_reverse_clusters(buffer: buffer_t) -> None: ...
def buffer_reverse_range(buffer: buffer_t, start: int, end: int) -> None: ...
def buffer_serialize(buffer: buffer_t, start: int, end: int, font: typing.Optional[font_t], format: buffer_serialize_format_t, flags: buffer_serialize_flags_t) -> typing.Tuple[int, bytes, int]: ...
def buffer_serialize_format_from_string(str: typing.Sequence[int]) -> buffer_serialize_format_t: ...
def buffer_serialize_format_to_string(format: buffer_serialize_format_t) -> str: ...
def buffer_serialize_glyphs(buffer: buffer_t, start: int, end: int, font: typing.Optional[font_t], format: buffer_serialize_format_t, flags: buffer_serialize_flags_t) -> typing.Tuple[int, bytes, int]: ...
def buffer_serialize_list_formats() -> list[str]: ...
def buffer_serialize_unicode(buffer: buffer_t, start: int, end: int, format: buffer_serialize_format_t, flags: buffer_serialize_flags_t) -> typing.Tuple[int, bytes, int]: ...
def buffer_set_cluster_level(buffer: buffer_t, cluster_level: buffer_cluster_level_t) -> None: ...
def buffer_set_content_type(buffer: buffer_t, content_type: buffer_content_type_t) -> None: ...
def buffer_set_direction(buffer: buffer_t, direction: direction_t) -> None: ...
def buffer_set_flags(buffer: buffer_t, flags: buffer_flags_t) -> None: ...
def buffer_set_invisible_glyph(buffer: buffer_t, invisible: int) -> None: ...
def buffer_set_language(buffer: buffer_t, language: language_t) -> None: ...
def buffer_set_length(buffer: buffer_t, length: int) -> int: ...
def buffer_set_message_func(buffer: buffer_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def buffer_set_not_found_glyph(buffer: buffer_t, not_found: int) -> None: ...
def buffer_set_replacement_codepoint(buffer: buffer_t, replacement: int) -> None: ...
def buffer_set_script(buffer: buffer_t, script: script_t) -> None: ...
def buffer_set_segment_properties(buffer: buffer_t, props: segment_properties_t) -> None: ...
def buffer_set_unicode_funcs(buffer: buffer_t, unicode_funcs: unicode_funcs_t) -> None: ...
def color_get_alpha(color: int) -> int: ...
def color_get_blue(color: int) -> int: ...
def color_get_green(color: int) -> int: ...
def color_get_red(color: int) -> int: ...
def direction_from_string(str: typing.Sequence[int]) -> direction_t: ...
def direction_to_string(direction: direction_t) -> str: ...
def draw_close_path(dfuncs: draw_funcs_t, draw_data: None, st: draw_state_t) -> None: ...
def draw_cubic_to(dfuncs: draw_funcs_t, draw_data: None, st: draw_state_t, control1_x: float, control1_y: float, control2_x: float, control2_y: float, to_x: float, to_y: float) -> None: ...
def draw_funcs_create() -> draw_funcs_t: ...
def draw_funcs_is_immutable(dfuncs: draw_funcs_t) -> int: ...
def draw_funcs_make_immutable(dfuncs: draw_funcs_t) -> None: ...
def draw_funcs_set_close_path_func(dfuncs: draw_funcs_t, func: typing.Callable[..., None], *user_data: typing.Any) -> None: ...
def draw_funcs_set_cubic_to_func(dfuncs: draw_funcs_t, func: typing.Callable[..., None], *user_data: typing.Any) -> None: ...
def draw_funcs_set_line_to_func(dfuncs: draw_funcs_t, func: typing.Callable[..., None], *user_data: typing.Any) -> None: ...
def draw_funcs_set_move_to_func(dfuncs: draw_funcs_t, func: typing.Callable[..., None], *user_data: typing.Any) -> None: ...
def draw_funcs_set_quadratic_to_func(dfuncs: draw_funcs_t, func: typing.Callable[..., None], *user_data: typing.Any) -> None: ...
def draw_line_to(dfuncs: draw_funcs_t, draw_data: None, st: draw_state_t, to_x: float, to_y: float) -> None: ...
def draw_move_to(dfuncs: draw_funcs_t, draw_data: None, st: draw_state_t, to_x: float, to_y: float) -> None: ...
def draw_quadratic_to(dfuncs: draw_funcs_t, draw_data: None, st: draw_state_t, control_x: float, control_y: float, to_x: float, to_y: float) -> None: ...
def face_builder_add_table(face: face_t, tag: int, blob: blob_t) -> int: ...
def face_builder_create() -> face_t: ...
def face_builder_sort_tables(face: face_t, tags: typing.Sequence[int]) -> None: ...
def face_collect_unicodes(face: face_t, out: set_t) -> None: ...
def face_collect_variation_selectors(face: face_t, out: set_t) -> None: ...
def face_collect_variation_unicodes(face: face_t, variation_selector: int, out: set_t) -> None: ...
def face_count(blob: blob_t) -> int: ...
def face_create(blob: blob_t, index: int) -> face_t: ...
def face_create_for_tables(reference_table_func: typing.Callable[..., blob_t], *user_data: typing.Any) -> face_t: ...
def face_get_empty() -> face_t: ...
def face_get_glyph_count(face: face_t) -> int: ...
def face_get_index(face: face_t) -> int: ...
def face_get_table_tags(face: face_t, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def face_get_upem(face: face_t) -> int: ...
def face_is_immutable(face: face_t) -> int: ...
def face_make_immutable(face: face_t) -> None: ...
def face_reference_blob(face: face_t) -> blob_t: ...
def face_reference_table(face: face_t, tag: int) -> blob_t: ...
def face_set_glyph_count(face: face_t, glyph_count: int) -> None: ...
def face_set_index(face: face_t, index: int) -> None: ...
def face_set_upem(face: face_t, upem: int) -> None: ...
def feature_from_string(str: typing.Sequence[int]) -> typing.Tuple[int, feature_t]: ...
def feature_to_string(feature: feature_t) -> list[str]: ...
def font_add_glyph_origin_for_direction(font: font_t, glyph: int, direction: direction_t) -> typing.Tuple[int, int]: ...
def font_changed(font: font_t) -> None: ...
def font_create(face: face_t) -> font_t: ...
def font_create_sub_font(parent: font_t) -> font_t: ...
def font_funcs_create() -> font_funcs_t: ...
def font_funcs_get_empty() -> font_funcs_t: ...
def font_funcs_is_immutable(ffuncs: font_funcs_t) -> int: ...
def font_funcs_make_immutable(ffuncs: font_funcs_t) -> None: ...
def font_funcs_set_font_h_extents_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, font_extents_t]], *user_data: typing.Any) -> None: ...
def font_funcs_set_font_v_extents_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, font_extents_t]], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_contour_point_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, int, int]], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_extents_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, glyph_extents_t]], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_from_name_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, int]], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, int]], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_h_advance_func(ffuncs: font_funcs_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_h_advances_func(ffuncs: font_funcs_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_h_kerning_func(ffuncs: font_funcs_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_h_origin_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, int, int]], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_name_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, list[str]]], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_shape_func(ffuncs: font_funcs_t, func: typing.Callable[..., None], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_v_advance_func(ffuncs: font_funcs_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_v_advances_func(ffuncs: font_funcs_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_v_kerning_func(ffuncs: font_funcs_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def font_funcs_set_glyph_v_origin_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, int, int]], *user_data: typing.Any) -> None: ...
def font_funcs_set_nominal_glyph_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, int]], *user_data: typing.Any) -> None: ...
def font_funcs_set_nominal_glyphs_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, int]], *user_data: typing.Any) -> None: ...
def font_funcs_set_variation_glyph_func(ffuncs: font_funcs_t, func: typing.Callable[..., typing.Tuple[int, int]], *user_data: typing.Any) -> None: ...
def font_get_empty() -> font_t: ...
def font_get_extents_for_direction(font: font_t, direction: direction_t) -> font_extents_t: ...
def font_get_face(font: font_t) -> face_t: ...
def font_get_glyph(font: font_t, unicode: int, variation_selector: int) -> typing.Tuple[int, int]: ...
def font_get_glyph_advance_for_direction(font: font_t, glyph: int, direction: direction_t) -> typing.Tuple[int, int]: ...
def font_get_glyph_advances_for_direction(font: font_t, direction: direction_t, count: int, first_glyph: int, glyph_stride: int) -> typing.Tuple[int, int]: ...
def font_get_glyph_contour_point(font: font_t, glyph: int, point_index: int) -> typing.Tuple[int, int, int]: ...
def font_get_glyph_contour_point_for_origin(font: font_t, glyph: int, point_index: int, direction: direction_t) -> typing.Tuple[int, int, int]: ...
def font_get_glyph_extents(font: font_t, glyph: int) -> typing.Tuple[int, glyph_extents_t]: ...
def font_get_glyph_extents_for_origin(font: font_t, glyph: int, direction: direction_t) -> typing.Tuple[int, glyph_extents_t]: ...
def font_get_glyph_from_name(font: font_t, name: typing.Sequence[str]) -> typing.Tuple[int, int]: ...
def font_get_glyph_h_advance(font: font_t, glyph: int) -> int: ...
def font_get_glyph_h_advances(font: font_t, count: int, first_glyph: int, glyph_stride: int, advance_stride: int) -> int: ...
def font_get_glyph_h_kerning(font: font_t, left_glyph: int, right_glyph: int) -> int: ...
def font_get_glyph_h_origin(font: font_t, glyph: int) -> typing.Tuple[int, int, int]: ...
def font_get_glyph_kerning_for_direction(font: font_t, first_glyph: int, second_glyph: int, direction: direction_t) -> typing.Tuple[int, int]: ...
def font_get_glyph_name(font: font_t, glyph: int) -> typing.Tuple[int, list[str]]: ...
def font_get_glyph_origin_for_direction(font: font_t, glyph: int, direction: direction_t) -> typing.Tuple[int, int]: ...
def font_get_glyph_shape(font: font_t, glyph: int, dfuncs: draw_funcs_t, draw_data: None) -> None: ...
def font_get_glyph_v_advance(font: font_t, glyph: int) -> int: ...
def font_get_glyph_v_advances(font: font_t, count: int, first_glyph: int, glyph_stride: int) -> typing.Tuple[int, int]: ...
def font_get_glyph_v_kerning(font: font_t, top_glyph: int, bottom_glyph: int) -> int: ...
def font_get_glyph_v_origin(font: font_t, glyph: int) -> typing.Tuple[int, int, int]: ...
def font_get_h_extents(font: font_t) -> typing.Tuple[int, font_extents_t]: ...
def font_get_nominal_glyph(font: font_t, unicode: int) -> typing.Tuple[int, int]: ...
def font_get_nominal_glyphs(font: font_t, count: int, first_unicode: int, unicode_stride: int, glyph_stride: int) -> typing.Tuple[int, int]: ...
def font_get_parent(font: font_t) -> font_t: ...
def font_get_ppem(font: font_t) -> typing.Tuple[int, int]: ...
def font_get_ptem(font: font_t) -> float: ...
def font_get_scale(font: font_t) -> typing.Tuple[int, int]: ...
def font_get_serial(font: font_t) -> int: ...
def font_get_synthetic_slant(font: font_t) -> float: ...
def font_get_v_extents(font: font_t) -> typing.Tuple[int, font_extents_t]: ...
def font_get_var_coords_design(font: font_t) -> typing.Tuple[float, int]: ...
def font_get_var_coords_normalized(font: font_t) -> typing.Tuple[int, int]: ...
def font_get_variation_glyph(font: font_t, unicode: int, variation_selector: int) -> typing.Tuple[int, int]: ...
def font_glyph_from_string(font: font_t, s: typing.Sequence[int]) -> typing.Tuple[int, int]: ...
def font_glyph_to_string(font: font_t, glyph: int) -> list[str]: ...
def font_is_immutable(font: font_t) -> int: ...
def font_make_immutable(font: font_t) -> None: ...
def font_set_face(font: font_t, face: face_t) -> None: ...
def font_set_funcs(font: font_t, klass: font_funcs_t, *font_data: typing.Any) -> None: ...
def font_set_funcs_data(font: font_t, font_data: None, destroy: typing.Optional[typing.Callable[..., None]] = None) -> None: ...
def font_set_parent(font: font_t, parent: font_t) -> None: ...
def font_set_ppem(font: font_t, x_ppem: int, y_ppem: int) -> None: ...
def font_set_ptem(font: font_t, ptem: float) -> None: ...
def font_set_scale(font: font_t, x_scale: int, y_scale: int) -> None: ...
def font_set_synthetic_slant(font: font_t, slant: float) -> None: ...
def font_set_var_coords_design(font: font_t, coords: typing.Sequence[float]) -> None: ...
def font_set_var_coords_normalized(font: font_t, coords: typing.Sequence[int]) -> None: ...
def font_set_var_named_instance(font: font_t, instance_index: int) -> None: ...
def font_set_variations(font: font_t, variations: typing.Sequence[variation_t]) -> None: ...
def font_subtract_glyph_origin_for_direction(font: font_t, glyph: int, direction: direction_t) -> typing.Tuple[int, int]: ...
def ft_face_create(ft_face: freetype2.Face, destroy: typing.Optional[typing.Callable[..., None]] = None) -> face_t: ...
def ft_face_create_cached(ft_face: freetype2.Face) -> face_t: ...
def ft_face_create_referenced(ft_face: freetype2.Face) -> face_t: ...
def ft_font_changed(font: font_t) -> None: ...
def ft_font_create(ft_face: freetype2.Face, destroy: typing.Optional[typing.Callable[..., None]] = None) -> font_t: ...
def ft_font_create_referenced(ft_face: freetype2.Face) -> font_t: ...
def ft_font_get_load_flags(font: font_t) -> int: ...
def ft_font_set_funcs(font: font_t) -> None: ...
def ft_font_set_load_flags(font: font_t, load_flags: int) -> None: ...
def ft_hb_font_changed(font: font_t) -> int: ...
def glib_blob_create(gbytes: GLib.Bytes) -> blob_t: ...
def glib_get_unicode_funcs() -> unicode_funcs_t: ...
def glib_script_from_script(script: script_t) -> GLib.UnicodeScript: ...
def glib_script_to_script(script: GLib.UnicodeScript) -> script_t: ...
def glyph_info_get_glyph_flags(info: glyph_info_t) -> glyph_flags_t: ...
def language_from_string(str: typing.Sequence[int]) -> language_t: ...
def language_get_default() -> language_t: ...
def language_matches(language: language_t, specific: language_t) -> int: ...
def language_to_string(language: language_t) -> str: ...
def map_allocation_successful(map: map_t) -> int: ...
def map_clear(map: map_t) -> None: ...
def map_copy(map: map_t) -> map_t: ...
def map_create() -> map_t: ...
def map_del(map: map_t, key: int) -> None: ...
def map_get(map: map_t, key: int) -> int: ...
def map_get_empty() -> map_t: ...
def map_get_population(map: map_t) -> int: ...
def map_has(map: map_t, key: int) -> int: ...
def map_hash(map: map_t) -> int: ...
def map_is_empty(map: map_t) -> int: ...
def map_is_equal(map: map_t, other: map_t) -> int: ...
def map_set(map: map_t, key: int, value: int) -> None: ...
def ot_color_glyph_get_layers(face: face_t, glyph: int, start_offset: int) -> typing.Tuple[int, list[ot_color_layer_t]]: ...
def ot_color_glyph_reference_png(font: font_t, glyph: int) -> blob_t: ...
def ot_color_glyph_reference_svg(face: face_t, glyph: int) -> blob_t: ...
def ot_color_has_layers(face: face_t) -> int: ...
def ot_color_has_palettes(face: face_t) -> int: ...
def ot_color_has_png(face: face_t) -> int: ...
def ot_color_has_svg(face: face_t) -> int: ...
def ot_color_palette_color_get_name_id(face: face_t, color_index: int) -> int: ...
def ot_color_palette_get_colors(face: face_t, palette_index: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_color_palette_get_count(face: face_t) -> int: ...
def ot_color_palette_get_flags(face: face_t, palette_index: int) -> ot_color_palette_flags_t: ...
def ot_color_palette_get_name_id(face: face_t, palette_index: int) -> int: ...
def ot_font_set_funcs(font: font_t) -> None: ...
def ot_layout_collect_features(face: face_t, table_tag: int, scripts: typing.Optional[typing.Sequence[int]] = None, languages: typing.Optional[typing.Sequence[int]] = None, features: typing.Optional[typing.Sequence[int]] = None) -> set_t: ...
def ot_layout_collect_lookups(face: face_t, table_tag: int, scripts: typing.Optional[typing.Sequence[int]] = None, languages: typing.Optional[typing.Sequence[int]] = None, features: typing.Optional[typing.Sequence[int]] = None) -> set_t: ...
def ot_layout_feature_get_characters(face: face_t, table_tag: int, feature_index: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_feature_get_lookups(face: face_t, table_tag: int, feature_index: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_feature_get_name_ids(face: face_t, table_tag: int, feature_index: int) -> typing.Tuple[int, int, int, int, int, int]: ...
def ot_layout_feature_with_variations_get_lookups(face: face_t, table_tag: int, feature_index: int, variations_index: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_get_attach_points(face: face_t, glyph: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_get_baseline(font: font_t, baseline_tag: ot_layout_baseline_tag_t, direction: direction_t, script_tag: int, language_tag: int) -> typing.Tuple[int, int]: ...
def ot_layout_get_baseline_with_fallback(font: font_t, baseline_tag: ot_layout_baseline_tag_t, direction: direction_t, script_tag: int, language_tag: int) -> int: ...
def ot_layout_get_glyph_class(face: face_t, glyph: int) -> ot_layout_glyph_class_t: ...
def ot_layout_get_glyphs_in_class(face: face_t, klass: ot_layout_glyph_class_t) -> set_t: ...
def ot_layout_get_horizontal_baseline_tag_for_script(script: script_t) -> ot_layout_baseline_tag_t: ...
def ot_layout_get_ligature_carets(font: font_t, direction: direction_t, glyph: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_get_size_params(face: face_t) -> typing.Tuple[int, int, int, int, int, int]: ...
def ot_layout_has_glyph_classes(face: face_t) -> int: ...
def ot_layout_has_positioning(face: face_t) -> int: ...
def ot_layout_has_substitution(face: face_t) -> int: ...
def ot_layout_language_find_feature(face: face_t, table_tag: int, script_index: int, language_index: int, feature_tag: int) -> typing.Tuple[int, int]: ...
def ot_layout_language_get_feature_indexes(face: face_t, table_tag: int, script_index: int, language_index: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_language_get_feature_tags(face: face_t, table_tag: int, script_index: int, language_index: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_language_get_required_feature(face: face_t, table_tag: int, script_index: int, language_index: int) -> typing.Tuple[int, int, int]: ...
def ot_layout_language_get_required_feature_index(face: face_t, table_tag: int, script_index: int, language_index: int) -> typing.Tuple[int, int]: ...
def ot_layout_lookup_collect_glyphs(face: face_t, table_tag: int, lookup_index: int) -> typing.Tuple[set_t, set_t, set_t, set_t]: ...
def ot_layout_lookup_get_glyph_alternates(face: face_t, lookup_index: int, glyph: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_lookup_get_optical_bound(font: font_t, lookup_index: int, direction: direction_t, glyph: int) -> int: ...
def ot_layout_lookup_substitute_closure(face: face_t, lookup_index: int) -> set_t: ...
def ot_layout_lookup_would_substitute(face: face_t, lookup_index: int, glyphs: int, glyphs_length: int, zero_context: int) -> int: ...
def ot_layout_lookups_substitute_closure(face: face_t, lookups: set_t) -> set_t: ...
def ot_layout_script_find_language(face: face_t, table_tag: int, script_index: int, language_tag: int, language_index: int) -> int: ...
def ot_layout_script_get_language_tags(face: face_t, table_tag: int, script_index: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_script_select_language(face: face_t, table_tag: int, script_index: int, language_count: int, language_tags: int) -> typing.Tuple[int, int]: ...
def ot_layout_table_choose_script(face: face_t, table_tag: int, script_tags: int) -> typing.Tuple[int, int, int]: ...
def ot_layout_table_find_feature_variations(face: face_t, table_tag: int, coords: int, num_coords: int) -> typing.Tuple[int, int]: ...
def ot_layout_table_find_script(face: face_t, table_tag: int, script_tag: int) -> typing.Tuple[int, int]: ...
def ot_layout_table_get_feature_tags(face: face_t, table_tag: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_table_get_lookup_count(face: face_t, table_tag: int) -> int: ...
def ot_layout_table_get_script_tags(face: face_t, table_tag: int, start_offset: int) -> typing.Tuple[int, list[int]]: ...
def ot_layout_table_select_script(face: face_t, table_tag: int, script_count: int, script_tags: int) -> typing.Tuple[int, int, int]: ...
def ot_math_get_constant(font: font_t, constant: ot_math_constant_t) -> int: ...
def ot_math_get_glyph_assembly(font: font_t, glyph: int, direction: direction_t, start_offset: int) -> typing.Tuple[int, list[ot_math_glyph_part_t], int]: ...
def ot_math_get_glyph_italics_correction(font: font_t, glyph: int) -> int: ...
def ot_math_get_glyph_kerning(font: font_t, glyph: int, kern: ot_math_kern_t, correction_height: int) -> int: ...
def ot_math_get_glyph_kernings(font: font_t, glyph: int, kern: ot_math_kern_t, start_offset: int) -> typing.Tuple[int, list[ot_math_kern_entry_t]]: ...
def ot_math_get_glyph_top_accent_attachment(font: font_t, glyph: int) -> int: ...
def ot_math_get_glyph_variants(font: font_t, glyph: int, direction: direction_t, start_offset: int) -> typing.Tuple[int, list[ot_math_glyph_variant_t]]: ...
def ot_math_get_min_connector_overlap(font: font_t, direction: direction_t) -> int: ...
def ot_math_has_data(face: face_t) -> int: ...
def ot_math_is_glyph_extended_shape(face: face_t, glyph: int) -> int: ...
def ot_meta_get_entry_tags(face: face_t, start_offset: int) -> typing.Tuple[int, list[ot_meta_tag_t]]: ...
def ot_meta_reference_entry(face: face_t, meta_tag: ot_meta_tag_t) -> blob_t: ...
def ot_metrics_get_position(font: font_t, metrics_tag: ot_metrics_tag_t) -> typing.Tuple[int, int]: ...
def ot_metrics_get_position_with_fallback(font: font_t, metrics_tag: ot_metrics_tag_t) -> int: ...
def ot_metrics_get_variation(font: font_t, metrics_tag: ot_metrics_tag_t) -> float: ...
def ot_metrics_get_x_variation(font: font_t, metrics_tag: ot_metrics_tag_t) -> int: ...
def ot_metrics_get_y_variation(font: font_t, metrics_tag: ot_metrics_tag_t) -> int: ...
def ot_name_get_utf16(face: face_t, name_id: int, language: language_t) -> typing.Tuple[int, list[int]]: ...
def ot_name_get_utf32(face: face_t, name_id: int, language: language_t) -> typing.Tuple[int, list[int]]: ...
def ot_name_get_utf8(face: face_t, name_id: int, language: language_t) -> typing.Tuple[int, list[str]]: ...
def ot_name_list_names(face: face_t) -> list[ot_name_entry_t]: ...
def ot_shape_glyphs_closure(font: font_t, buffer: buffer_t, features: typing.Sequence[feature_t]) -> set_t: ...
def ot_shape_plan_collect_lookups(shape_plan: shape_plan_t, table_tag: int) -> set_t: ...
def ot_tag_from_language(language: language_t) -> int: ...
def ot_tag_to_language(tag: int) -> typing.Optional[language_t]: ...
def ot_tag_to_script(tag: int) -> script_t: ...
def ot_tags_from_script(script: script_t, script_tag_1: int, script_tag_2: int) -> None: ...
def ot_tags_from_script_and_language(script: script_t, language: language_t) -> typing.Tuple[int, int, int, int]: ...
def ot_tags_to_script_and_language(script_tag: int, language_tag: int) -> typing.Tuple[script_t, language_t]: ...
def ot_var_find_axis(face: face_t, axis_tag: int, axis_index: int) -> typing.Tuple[int, ot_var_axis_t]: ...
def ot_var_find_axis_info(face: face_t, axis_tag: int) -> typing.Tuple[int, ot_var_axis_info_t]: ...
def ot_var_get_axes(face: face_t, start_offset: int) -> typing.Tuple[int, list[ot_var_axis_t]]: ...
def ot_var_get_axis_count(face: face_t) -> int: ...
def ot_var_get_axis_infos(face: face_t, start_offset: int) -> typing.Tuple[int, list[ot_var_axis_info_t]]: ...
def ot_var_get_named_instance_count(face: face_t) -> int: ...
def ot_var_has_data(face: face_t) -> int: ...
def ot_var_named_instance_get_design_coords(face: face_t, instance_index: int) -> typing.Tuple[int, list[float]]: ...
def ot_var_named_instance_get_postscript_name_id(face: face_t, instance_index: int) -> int: ...
def ot_var_named_instance_get_subfamily_name_id(face: face_t, instance_index: int) -> int: ...
def ot_var_normalize_coords(face: face_t, coords_length: int, design_coords: float) -> int: ...
def ot_var_normalize_variations(face: face_t, variations: variation_t, variations_length: int) -> list[int]: ...
def script_from_iso15924_tag(tag: int) -> script_t: ...
def script_from_string(str: typing.Sequence[int]) -> script_t: ...
def script_get_horizontal_direction(script: script_t) -> direction_t: ...
def script_to_iso15924_tag(script: script_t) -> int: ...
def segment_properties_equal(a: segment_properties_t, b: segment_properties_t) -> int: ...
def segment_properties_hash(p: segment_properties_t) -> int: ...
def segment_properties_overlay(p: segment_properties_t, src: segment_properties_t) -> None: ...
def set_add(set: set_t, codepoint: int) -> None: ...
def set_add_range(set: set_t, first: int, last: int) -> None: ...
def set_add_sorted_array(set: set_t, sorted_codepoints: typing.Sequence[int]) -> None: ...
def set_allocation_successful(set: set_t) -> int: ...
def set_clear(set: set_t) -> None: ...
def set_copy(set: set_t) -> set_t: ...
def set_create() -> set_t: ...
def set_del(set: set_t, codepoint: int) -> None: ...
def set_del_range(set: set_t, first: int, last: int) -> None: ...
def set_get_empty() -> set_t: ...
def set_get_max(set: set_t) -> int: ...
def set_get_min(set: set_t) -> int: ...
def set_get_population(set: set_t) -> int: ...
def set_has(set: set_t, codepoint: int) -> int: ...
def set_hash(set: set_t) -> int: ...
def set_intersect(set: set_t, other: set_t) -> None: ...
def set_invert(set: set_t) -> None: ...
def set_is_empty(set: set_t) -> int: ...
def set_is_equal(set: set_t, other: set_t) -> int: ...
def set_is_subset(set: set_t, larger_set: set_t) -> int: ...
def set_next(set: set_t) -> typing.Tuple[int, int]: ...
def set_next_many(set: set_t, codepoint: int, out: typing.Sequence[int]) -> int: ...
def set_next_range(set: set_t) -> typing.Tuple[int, int, int]: ...
def set_previous(set: set_t) -> typing.Tuple[int, int]: ...
def set_previous_range(set: set_t) -> typing.Tuple[int, int, int]: ...
def set_set(set: set_t, other: set_t) -> None: ...
def set_subtract(set: set_t, other: set_t) -> None: ...
def set_symmetric_difference(set: set_t, other: set_t) -> None: ...
def set_union(set: set_t, other: set_t) -> None: ...
def shape(font: font_t, buffer: buffer_t, features: typing.Optional[typing.Sequence[feature_t]] = None) -> None: ...
def shape_full(font: font_t, buffer: buffer_t, features: typing.Optional[typing.Sequence[feature_t]] = None, shaper_list: typing.Optional[typing.Sequence[str]] = None) -> int: ...
def shape_list_shapers() -> list[str]: ...
def shape_plan_create(face: face_t, props: segment_properties_t, user_features: typing.Sequence[feature_t], shaper_list: typing.Sequence[str]) -> shape_plan_t: ...
def shape_plan_create2(face: face_t, props: segment_properties_t, user_features: typing.Sequence[feature_t], coords: typing.Sequence[int], shaper_list: typing.Sequence[str]) -> shape_plan_t: ...
def shape_plan_create_cached(face: face_t, props: segment_properties_t, user_features: typing.Sequence[feature_t], shaper_list: typing.Sequence[str]) -> shape_plan_t: ...
def shape_plan_create_cached2(face: face_t, props: segment_properties_t, user_features: typing.Sequence[feature_t], coords: typing.Sequence[int], shaper_list: typing.Sequence[str]) -> shape_plan_t: ...
def shape_plan_execute(shape_plan: shape_plan_t, font: font_t, buffer: buffer_t, features: typing.Sequence[feature_t]) -> int: ...
def shape_plan_get_empty() -> shape_plan_t: ...
def shape_plan_get_shaper(shape_plan: shape_plan_t) -> str: ...
def style_get_value(font: font_t, style_tag: style_tag_t) -> float: ...
def tag_from_string(str: typing.Sequence[int]) -> int: ...
def tag_to_string(tag: int) -> bytes: ...
def unicode_combining_class(ufuncs: unicode_funcs_t, unicode: int) -> unicode_combining_class_t: ...
def unicode_compose(ufuncs: unicode_funcs_t, a: int, b: int) -> typing.Tuple[int, int]: ...
def unicode_decompose(ufuncs: unicode_funcs_t, ab: int) -> typing.Tuple[int, int, int]: ...
def unicode_decompose_compatibility(ufuncs: unicode_funcs_t, u: int) -> typing.Tuple[int, int]: ...
def unicode_eastasian_width(ufuncs: unicode_funcs_t, unicode: int) -> int: ...
def unicode_funcs_create(parent: typing.Optional[unicode_funcs_t] = None) -> unicode_funcs_t: ...
def unicode_funcs_get_default() -> unicode_funcs_t: ...
def unicode_funcs_get_empty() -> unicode_funcs_t: ...
def unicode_funcs_get_parent(ufuncs: unicode_funcs_t) -> unicode_funcs_t: ...
def unicode_funcs_is_immutable(ufuncs: unicode_funcs_t) -> int: ...
def unicode_funcs_make_immutable(ufuncs: unicode_funcs_t) -> None: ...
def unicode_funcs_set_combining_class_func(ufuncs: unicode_funcs_t, func: typing.Callable[..., unicode_combining_class_t], *user_data: typing.Any) -> None: ...
def unicode_funcs_set_compose_func(ufuncs: unicode_funcs_t, func: typing.Callable[..., typing.Tuple[int, int]], *user_data: typing.Any) -> None: ...
def unicode_funcs_set_decompose_compatibility_func(ufuncs: unicode_funcs_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def unicode_funcs_set_decompose_func(ufuncs: unicode_funcs_t, func: typing.Callable[..., typing.Tuple[int, int, int]], *user_data: typing.Any) -> None: ...
def unicode_funcs_set_eastasian_width_func(ufuncs: unicode_funcs_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def unicode_funcs_set_general_category_func(ufuncs: unicode_funcs_t, func: typing.Callable[..., unicode_general_category_t], *user_data: typing.Any) -> None: ...
def unicode_funcs_set_mirroring_func(ufuncs: unicode_funcs_t, func: typing.Callable[..., int], *user_data: typing.Any) -> None: ...
def unicode_funcs_set_script_func(ufuncs: unicode_funcs_t, func: typing.Callable[..., script_t], *user_data: typing.Any) -> None: ...
def unicode_general_category(ufuncs: unicode_funcs_t, unicode: int) -> unicode_general_category_t: ...
def unicode_mirroring(ufuncs: unicode_funcs_t, unicode: int) -> int: ...
def unicode_script(ufuncs: unicode_funcs_t, unicode: int) -> script_t: ...
def variation_from_string(str: typing.Sequence[int]) -> typing.Tuple[int, variation_t]: ...
def variation_to_string(variation: variation_t) -> list[str]: ...

class aat_layout_feature_selector_info_t(GObject.GPointer):
    """
    :Constructors:

    ::

        aat_layout_feature_selector_info_t()
    """
    name_id: int = ...
    enable: aat_layout_feature_selector_t = ...
    disable: aat_layout_feature_selector_t = ...
    reserved: int = ...

class blob_t(GObject.GPointer): ...

class buffer_t(GObject.GPointer): ...

class draw_funcs_t(GObject.GPointer): ...

class draw_state_t(GObject.GPointer):
    """
    :Constructors:

    ::

        draw_state_t()
    """
    path_open: int = ...
    path_start_x: float = ...
    path_start_y: float = ...
    current_x: float = ...
    current_y: float = ...
    reserved1: var_num_t = ...
    reserved2: var_num_t = ...
    reserved3: var_num_t = ...
    reserved4: var_num_t = ...
    reserved5: var_num_t = ...
    reserved6: var_num_t = ...
    reserved7: var_num_t = ...

class face_t(GObject.GPointer): ...

class feature_t(GObject.GPointer):
    """
    :Constructors:

    ::

        feature_t()
    """
    tag: int = ...
    value: int = ...
    start: int = ...
    end: int = ...

class font_extents_t(GObject.GPointer):
    """
    :Constructors:

    ::

        font_extents_t()
    """
    ascender: int = ...
    descender: int = ...
    line_gap: int = ...
    reserved9: int = ...
    reserved8: int = ...
    reserved7: int = ...
    reserved6: int = ...
    reserved5: int = ...
    reserved4: int = ...
    reserved3: int = ...
    reserved2: int = ...
    reserved1: int = ...

class font_funcs_t(GObject.GPointer): ...

class font_t(GObject.GPointer): ...

class glyph_extents_t(GObject.GPointer):
    """
    :Constructors:

    ::

        glyph_extents_t()
    """
    x_bearing: int = ...
    y_bearing: int = ...
    width: int = ...
    height: int = ...

class glyph_info_t(GObject.GPointer):
    """
    :Constructors:

    ::

        glyph_info_t()
    """
    codepoint: int = ...
    mask: int = ...
    cluster: int = ...
    var1: var_int_t = ...
    var2: var_int_t = ...

class glyph_position_t(GObject.GPointer):
    """
    :Constructors:

    ::

        glyph_position_t()
    """
    x_advance: int = ...
    y_advance: int = ...
    x_offset: int = ...
    y_offset: int = ...
    var: var_int_t = ...

class language_t(GObject.GPointer): ...

class map_t(GObject.GPointer): ...

class ot_color_layer_t(GObject.GPointer):
    """
    :Constructors:

    ::

        ot_color_layer_t()
    """
    glyph: int = ...
    color_index: int = ...

class ot_math_glyph_part_t(GObject.GPointer):
    """
    :Constructors:

    ::

        ot_math_glyph_part_t()
    """
    glyph: int = ...
    start_connector_length: int = ...
    end_connector_length: int = ...
    full_advance: int = ...
    flags: ot_math_glyph_part_flags_t = ...

class ot_math_glyph_variant_t(GObject.GPointer):
    """
    :Constructors:

    ::

        ot_math_glyph_variant_t()
    """
    glyph: int = ...
    advance: int = ...

class ot_math_kern_entry_t(GObject.GPointer):
    """
    :Constructors:

    ::

        ot_math_kern_entry_t()
    """
    max_correction_height: int = ...
    kern_value: int = ...

class ot_name_entry_t(GObject.GPointer):
    """
    :Constructors:

    ::

        ot_name_entry_t()
    """
    name_id: int = ...
    var: var_int_t = ...
    language: language_t = ...

class ot_var_axis_info_t(GObject.GPointer):
    """
    :Constructors:

    ::

        ot_var_axis_info_t()
    """
    axis_index: int = ...
    tag: int = ...
    name_id: int = ...
    flags: ot_var_axis_flags_t = ...
    min_value: float = ...
    default_value: float = ...
    max_value: float = ...
    reserved: int = ...

class ot_var_axis_t(GObject.GPointer):
    """
    :Constructors:

    ::

        ot_var_axis_t()
    """
    tag: int = ...
    name_id: int = ...
    min_value: float = ...
    default_value: float = ...
    max_value: float = ...

class segment_properties_t(GObject.GPointer):
    """
    :Constructors:

    ::

        segment_properties_t()
    """
    direction: direction_t = ...
    script: script_t = ...
    language: language_t = ...
    reserved1: None = ...
    reserved2: None = ...

class set_t(GObject.GPointer): ...

class shape_plan_t(GObject.GPointer): ...

class unicode_funcs_t(GObject.GPointer): ...

class user_data_key_t(GObject.GPointer):
    """
    :Constructors:

    ::

        user_data_key_t()
    """
    unused: int = ...

class var_int_t(GObject.GPointer):
    i16 = ... # FIXME Constant
    i32 = ... # FIXME Constant
    i8 = ... # FIXME Constant
    u16 = ... # FIXME Constant
    u32 = ... # FIXME Constant
    u8 = ... # FIXME Constant


class var_num_t(GObject.GPointer):
    f = ... # FIXME Constant
    i16 = ... # FIXME Constant
    i32 = ... # FIXME Constant
    i8 = ... # FIXME Constant
    u16 = ... # FIXME Constant
    u32 = ... # FIXME Constant
    u8 = ... # FIXME Constant


class variation_t(GObject.GPointer):
    """
    :Constructors:

    ::

        variation_t()
    """
    tag: int = ...
    value: float = ...

class buffer_diff_flags_t(GObject.GFlags):
    CLUSTER_MISMATCH = 32
    CODEPOINT_MISMATCH = 16
    CONTENT_TYPE_MISMATCH = 1
    DOTTED_CIRCLE_PRESENT = 8
    EQUAL = 0
    GLYPH_FLAGS_MISMATCH = 64
    LENGTH_MISMATCH = 2
    NOTDEF_PRESENT = 4
    POSITION_MISMATCH = 128

class buffer_flags_t(GObject.GFlags):
    BOT = 1
    DEFAULT = 0
    DEFINED = 255
    DO_NOT_INSERT_DOTTED_CIRCLE = 16
    EOT = 2
    PRESERVE_DEFAULT_IGNORABLES = 4
    PRODUCE_SAFE_TO_INSERT_TATWEEL = 128
    PRODUCE_UNSAFE_TO_CONCAT = 64
    REMOVE_DEFAULT_IGNORABLES = 8
    VERIFY = 32

class buffer_serialize_flags_t(GObject.GFlags):
    DEFAULT = 0
    DEFINED = 63
    GLYPH_EXTENTS = 8
    GLYPH_FLAGS = 16
    NO_ADVANCES = 32
    NO_CLUSTERS = 1
    NO_GLYPH_NAMES = 4
    NO_POSITIONS = 2

class glyph_flags_t(GObject.GFlags):
    DEFINED = 7
    SAFE_TO_INSERT_TATWEEL = 4
    UNSAFE_TO_BREAK = 1
    UNSAFE_TO_CONCAT = 2

class ot_color_palette_flags_t(GObject.GFlags):
    DEFAULT = 0
    USABLE_WITH_DARK_BACKGROUND = 2
    USABLE_WITH_LIGHT_BACKGROUND = 1

class ot_math_glyph_part_flags_t(GObject.GFlags):
    EXTENDER = 1

class ot_var_axis_flags_t(GObject.GFlags):
    HIDDEN = 1

class aat_layout_feature_selector_t(GObject.GEnum):
    ABBREV_SQUARED_LIGATURES_OFF = 15
    ABBREV_SQUARED_LIGATURES_ON = 14
    ALL_CAPS = 1
    ALL_LOWER_CASE = 2
    ALL_TYPE_FEATURES_OFF = 1
    ALL_TYPE_FEATURES_ON = 0
    ALTERNATE_HORIZ_KANA_OFF = 1
    ALTERNATE_HORIZ_KANA_ON = 0
    ALTERNATE_VERT_KANA_OFF = 3
    ALTERNATE_VERT_KANA_ON = 2
    ALT_HALF_WIDTH_TEXT = 6
    ALT_PROPORTIONAL_TEXT = 5
    ASTERISK_TO_MULTIPLY_OFF = 3
    ASTERISK_TO_MULTIPLY_ON = 2
    BOX_ANNOTATION = 1
    CANONICAL_COMPOSITION_OFF = 1
    CANONICAL_COMPOSITION_ON = 0
    CASE_SENSITIVE_LAYOUT_OFF = 1
    CASE_SENSITIVE_LAYOUT_ON = 0
    CASE_SENSITIVE_SPACING_OFF = 3
    CASE_SENSITIVE_SPACING_ON = 2
    CIRCLE_ANNOTATION = 3
    CJK_ITALIC_ROMAN = 1
    CJK_ITALIC_ROMAN_OFF = 3
    CJK_ITALIC_ROMAN_ON = 2
    CJK_SYMBOL_ALT_FIVE = 5
    CJK_SYMBOL_ALT_FOUR = 4
    CJK_SYMBOL_ALT_ONE = 1
    CJK_SYMBOL_ALT_THREE = 3
    CJK_SYMBOL_ALT_TWO = 2
    CJK_VERTICAL_ROMAN_CENTERED = 0
    CJK_VERTICAL_ROMAN_HBASELINE = 1
    COMMON_LIGATURES_OFF = 3
    COMMON_LIGATURES_ON = 2
    COMPATIBILITY_COMPOSITION_OFF = 3
    COMPATIBILITY_COMPOSITION_ON = 2
    CONTEXTUAL_ALTERNATES_OFF = 1
    CONTEXTUAL_ALTERNATES_ON = 0
    CONTEXTUAL_LIGATURES_OFF = 19
    CONTEXTUAL_LIGATURES_ON = 18
    CONTEXTUAL_SWASH_ALTERNATES_OFF = 5
    CONTEXTUAL_SWASH_ALTERNATES_ON = 4
    CURSIVE = 2
    DECOMPOSE_DIACRITICS = 2
    DECORATIVE_BORDERS = 4
    DEFAULT_CJK_ROMAN = 2
    DEFAULT_LOWER_CASE = 0
    DEFAULT_UPPER_CASE = 0
    DESIGN_LEVEL1 = 0
    DESIGN_LEVEL2 = 1
    DESIGN_LEVEL3 = 2
    DESIGN_LEVEL4 = 3
    DESIGN_LEVEL5 = 4
    DIAGONAL_FRACTIONS = 2
    DIAMOND_ANNOTATION = 8
    DINGBATS = 1
    DIPHTHONG_LIGATURES_OFF = 11
    DIPHTHONG_LIGATURES_ON = 10
    DISPLAY_TEXT = 1
    ENGRAVED_TEXT = 2
    EXPERT_CHARACTERS = 10
    EXPONENTS_OFF = 9
    EXPONENTS_ON = 8
    FLEURONS = 3
    FORM_INTERROBANG_OFF = 7
    FORM_INTERROBANG_ON = 6
    FULL_WIDTH_CJK_ROMAN = 3
    FULL_WIDTH_IDEOGRAPHS = 0
    FULL_WIDTH_KANA = 0
    HALF_WIDTH_CJK_ROMAN = 0
    HALF_WIDTH_IDEOGRAPHS = 2
    HALF_WIDTH_TEXT = 2
    HANJA_TO_HANGUL = 1
    HANJA_TO_HANGUL_ALT_ONE = 7
    HANJA_TO_HANGUL_ALT_THREE = 9
    HANJA_TO_HANGUL_ALT_TWO = 8
    HIDE_DIACRITICS = 1
    HIRAGANA_TO_KATAKANA = 2
    HISTORICAL_LIGATURES_OFF = 21
    HISTORICAL_LIGATURES_ON = 20
    HOJO_CHARACTERS = 12
    HYPHENS_TO_EM_DASH_OFF = 1
    HYPHENS_TO_EM_DASH_ON = 0
    HYPHEN_TO_EN_DASH_OFF = 3
    HYPHEN_TO_EN_DASH_ON = 2
    HYPHEN_TO_MINUS_OFF = 1
    HYPHEN_TO_MINUS_ON = 0
    IDEOGRAPHIC_ALT_FIVE = 5
    IDEOGRAPHIC_ALT_FOUR = 4
    IDEOGRAPHIC_ALT_ONE = 1
    IDEOGRAPHIC_ALT_THREE = 3
    IDEOGRAPHIC_ALT_TWO = 2
    ILLUMINATED_CAPS = 3
    INEQUALITY_LIGATURES_OFF = 7
    INEQUALITY_LIGATURES_ON = 6
    INFERIORS = 2
    INITIAL_CAPS = 4
    INITIAL_CAPS_AND_SMALL_CAPS = 5
    INTERNATIONAL_SYMBOLS = 5
    INVALID = 65535
    INVERTED_BOX_ANNOTATION = 9
    INVERTED_CIRCLE_ANNOTATION = 4
    INVERTED_ROUNDED_BOX_ANNOTATION = 10
    JIS1978_CHARACTERS = 2
    JIS1983_CHARACTERS = 3
    JIS1990_CHARACTERS = 4
    JIS2004_CHARACTERS = 11
    KANA_TO_ROMANIZATION = 4
    KATAKANA_TO_HIRAGANA = 3
    LINE_FINAL_SWASHES_OFF = 7
    LINE_FINAL_SWASHES_ON = 6
    LINE_INITIAL_SWASHES_OFF = 5
    LINE_INITIAL_SWASHES_ON = 4
    LINGUISTIC_REARRANGEMENT_OFF = 1
    LINGUISTIC_REARRANGEMENT_ON = 0
    LOGOS_OFF = 7
    LOGOS_ON = 6
    LOWER_CASE_NUMBERS = 0
    LOWER_CASE_PETITE_CAPS = 2
    LOWER_CASE_SMALL_CAPS = 1
    MATHEMATICAL_GREEK_OFF = 11
    MATHEMATICAL_GREEK_ON = 10
    MATH_SYMBOLS = 6
    MONOSPACED_NUMBERS = 0
    MONOSPACED_TEXT = 1
    NLCCHARACTERS = 13
    NON_FINAL_SWASHES_OFF = 9
    NON_FINAL_SWASHES_ON = 8
    NORMAL_POSITION = 0
    NO_ALTERNATES = 0
    NO_ANNOTATION = 0
    NO_CJK_ITALIC_ROMAN = 0
    NO_CJK_SYMBOL_ALTERNATIVES = 0
    NO_FRACTIONS = 0
    NO_IDEOGRAPHIC_ALTERNATIVES = 0
    NO_ORNAMENTS = 0
    NO_RUBY_KANA = 0
    NO_STYLE_OPTIONS = 0
    NO_STYLISTIC_ALTERNATES = 0
    NO_TRANSLITERATION = 0
    ORDINALS = 3
    PARENTHESIS_ANNOTATION = 5
    PARTIALLY_CONNECTED = 1
    PERIODS_TO_ELLIPSIS_OFF = 11
    PERIODS_TO_ELLIPSIS_ON = 10
    PERIOD_ANNOTATION = 6
    PI_CHARACTERS = 2
    PREVENT_OVERLAP_OFF = 1
    PREVENT_OVERLAP_ON = 0
    PROPORTIONAL_CJK_ROMAN = 1
    PROPORTIONAL_IDEOGRAPHS = 1
    PROPORTIONAL_KANA = 1
    PROPORTIONAL_NUMBERS = 1
    PROPORTIONAL_TEXT = 0
    QUARTER_WIDTH_NUMBERS = 3
    QUARTER_WIDTH_TEXT = 4
    RARE_LIGATURES_OFF = 5
    RARE_LIGATURES_ON = 4
    REBUS_PICTURES_OFF = 9
    REBUS_PICTURES_ON = 8
    REQUIRED_LIGATURES_OFF = 1
    REQUIRED_LIGATURES_ON = 0
    ROMANIZATION_TO_HIRAGANA = 5
    ROMANIZATION_TO_KATAKANA = 6
    ROMAN_NUMERAL_ANNOTATION = 7
    ROUNDED_BOX_ANNOTATION = 2
    RUBY_KANA = 1
    RUBY_KANA_OFF = 3
    RUBY_KANA_ON = 2
    SCIENTIFIC_INFERIORS = 4
    SHOW_DIACRITICS = 0
    SIMPLIFIED_CHARACTERS = 1
    SLASHED_ZERO_OFF = 5
    SLASHED_ZERO_ON = 4
    SLASH_TO_DIVIDE_OFF = 5
    SLASH_TO_DIVIDE_ON = 4
    SMALL_CAPS = 3
    SMART_QUOTES_OFF = 9
    SMART_QUOTES_ON = 8
    SQUARED_LIGATURES_OFF = 13
    SQUARED_LIGATURES_ON = 12
    STYLISTIC_ALT_EIGHTEEN_OFF = 37
    STYLISTIC_ALT_EIGHTEEN_ON = 36
    STYLISTIC_ALT_EIGHT_OFF = 17
    STYLISTIC_ALT_EIGHT_ON = 16
    STYLISTIC_ALT_ELEVEN_OFF = 23
    STYLISTIC_ALT_ELEVEN_ON = 22
    STYLISTIC_ALT_FIFTEEN_OFF = 31
    STYLISTIC_ALT_FIFTEEN_ON = 30
    STYLISTIC_ALT_FIVE_OFF = 11
    STYLISTIC_ALT_FIVE_ON = 10
    STYLISTIC_ALT_FOURTEEN_OFF = 29
    STYLISTIC_ALT_FOURTEEN_ON = 28
    STYLISTIC_ALT_FOUR_OFF = 9
    STYLISTIC_ALT_FOUR_ON = 8
    STYLISTIC_ALT_NINETEEN_OFF = 39
    STYLISTIC_ALT_NINETEEN_ON = 38
    STYLISTIC_ALT_NINE_OFF = 19
    STYLISTIC_ALT_NINE_ON = 18
    STYLISTIC_ALT_ONE_OFF = 3
    STYLISTIC_ALT_ONE_ON = 2
    STYLISTIC_ALT_SEVENTEEN_OFF = 35
    STYLISTIC_ALT_SEVENTEEN_ON = 34
    STYLISTIC_ALT_SEVEN_OFF = 15
    STYLISTIC_ALT_SEVEN_ON = 14
    STYLISTIC_ALT_SIXTEEN_OFF = 33
    STYLISTIC_ALT_SIXTEEN_ON = 32
    STYLISTIC_ALT_SIX_OFF = 13
    STYLISTIC_ALT_SIX_ON = 12
    STYLISTIC_ALT_TEN_OFF = 21
    STYLISTIC_ALT_TEN_ON = 20
    STYLISTIC_ALT_THIRTEEN_OFF = 27
    STYLISTIC_ALT_THIRTEEN_ON = 26
    STYLISTIC_ALT_THREE_OFF = 7
    STYLISTIC_ALT_THREE_ON = 6
    STYLISTIC_ALT_TWELVE_OFF = 25
    STYLISTIC_ALT_TWELVE_ON = 24
    STYLISTIC_ALT_TWENTY_OFF = 41
    STYLISTIC_ALT_TWENTY_ON = 40
    STYLISTIC_ALT_TWO_OFF = 5
    STYLISTIC_ALT_TWO_ON = 4
    SUBSTITUTE_VERTICAL_FORMS_OFF = 1
    SUBSTITUTE_VERTICAL_FORMS_ON = 0
    SUPERIORS = 1
    SWASH_ALTERNATES_OFF = 3
    SWASH_ALTERNATES_ON = 2
    SYMBOL_LIGATURES_OFF = 17
    SYMBOL_LIGATURES_ON = 16
    TALL_CAPS = 5
    THIRD_WIDTH_NUMBERS = 2
    THIRD_WIDTH_TEXT = 3
    TITLING_CAPS = 4
    TRADITIONAL_ALT_FIVE = 9
    TRADITIONAL_ALT_FOUR = 8
    TRADITIONAL_ALT_ONE = 5
    TRADITIONAL_ALT_THREE = 7
    TRADITIONAL_ALT_TWO = 6
    TRADITIONAL_CHARACTERS = 0
    TRADITIONAL_NAMES_CHARACTERS = 14
    TRANSCODING_COMPOSITION_OFF = 5
    TRANSCODING_COMPOSITION_ON = 4
    UNCONNECTED = 0
    UPPER_AND_LOWER_CASE = 0
    UPPER_CASE_NUMBERS = 1
    UPPER_CASE_PETITE_CAPS = 2
    UPPER_CASE_SMALL_CAPS = 1
    VERTICAL_FRACTIONS = 1
    WORD_FINAL_SWASHES_OFF = 3
    WORD_FINAL_SWASHES_ON = 2
    WORD_INITIAL_SWASHES_OFF = 1
    WORD_INITIAL_SWASHES_ON = 0

class aat_layout_feature_type_t(GObject.GEnum):
    ALL_TYPOGRAPHIC = 0
    ALTERNATE_KANA = 34
    ANNOTATION_TYPE = 24
    CASE_SENSITIVE_LAYOUT = 33
    CHARACTER_ALTERNATIVES = 17
    CHARACTER_SHAPE = 20
    CJK_ROMAN_SPACING_TYPE = 103
    CJK_SYMBOL_ALTERNATIVES_TYPE = 29
    CJK_VERTICAL_ROMAN_PLACEMENT_TYPE = 31
    CONTEXTUAL_ALTERNATIVES = 36
    CURISVE_CONNECTION = 2
    DESIGN_COMPLEXITY_TYPE = 18
    DIACRITICS_TYPE = 9
    FRACTIONS = 11
    IDEOGRAPHIC_ALTERNATIVES_TYPE = 30
    IDEOGRAPHIC_SPACING_TYPE = 26
    INVALID = 65535
    ITALIC_CJK_ROMAN = 32
    KANA_SPACING_TYPE = 25
    LANGUAGE_TAG_TYPE = 39
    LETTER_CASE = 3
    LIGATURES = 1
    LINGUISTIC_REARRANGEMENT = 5
    LOWER_CASE = 37
    MATHEMATICAL_EXTRAS = 15
    NUMBER_CASE = 21
    NUMBER_SPACING = 6
    ORNAMENT_SETS_TYPE = 16
    OVERLAPPING_CHARACTERS_TYPE = 13
    RUBY_KANA = 28
    SMART_SWASH_TYPE = 8
    STYLE_OPTIONS = 19
    STYLISTIC_ALTERNATIVES = 35
    TEXT_SPACING = 22
    TRANSLITERATION = 23
    TYPOGRAPHIC_EXTRAS = 14
    UNICODE_DECOMPOSITION_TYPE = 27
    UPPER_CASE = 38
    VERTICAL_POSITION = 10
    VERTICAL_SUBSTITUTION = 4

class buffer_cluster_level_t(GObject.GEnum):
    CHARACTERS = 2
    DEFAULT = 0
    MONOTONE_CHARACTERS = 1
    MONOTONE_GRAPHEMES = 0

class buffer_content_type_t(GObject.GEnum):
    GLYPHS = 2
    INVALID = 0
    UNICODE = 1

class buffer_serialize_format_t(GObject.GEnum):
    INVALID = 0
    JSON = 1246973774
    TEXT = 1413830740

class direction_t(GObject.GEnum):
    BTT = 7
    INVALID = 0
    LTR = 4
    RTL = 5
    TTB = 6

class memory_mode_t(GObject.GEnum):
    DUPLICATE = 0
    READONLY = 1
    READONLY_MAY_MAKE_WRITABLE = 3
    WRITABLE = 2

class ot_layout_baseline_tag_t(GObject.GEnum):
    HANGING = 1751215719
    IDEO_EMBOX_BOTTOM_OR_LEFT = 1768187247
    IDEO_EMBOX_CENTRAL = 1231315813
    IDEO_EMBOX_TOP_OR_RIGHT = 1768191088
    IDEO_FACE_BOTTOM_OR_LEFT = 1768121954
    IDEO_FACE_CENTRAL = 1231251043
    IDEO_FACE_TOP_OR_RIGHT = 1768121972
    MATH = 1835103336
    ROMAN = 1919905134

class ot_layout_glyph_class_t(GObject.GEnum):
    BASE_GLYPH = 1
    COMPONENT = 4
    LIGATURE = 2
    MARK = 3
    UNCLASSIFIED = 0

class ot_math_constant_t(GObject.GEnum):
    ACCENT_BASE_HEIGHT = 6
    AXIS_HEIGHT = 5
    DELIMITED_SUB_FORMULA_MIN_HEIGHT = 2
    DISPLAY_OPERATOR_MIN_HEIGHT = 3
    FLATTENED_ACCENT_BASE_HEIGHT = 7
    FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN = 35
    FRACTION_DENOMINATOR_GAP_MIN = 39
    FRACTION_DENOMINATOR_SHIFT_DOWN = 34
    FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN = 40
    FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP = 33
    FRACTION_NUMERATOR_GAP_MIN = 36
    FRACTION_NUMERATOR_SHIFT_UP = 32
    FRACTION_NUM_DISPLAY_STYLE_GAP_MIN = 37
    FRACTION_RULE_THICKNESS = 38
    LOWER_LIMIT_BASELINE_DROP_MIN = 21
    LOWER_LIMIT_GAP_MIN = 20
    MATH_LEADING = 4
    OVERBAR_EXTRA_ASCENDER = 45
    OVERBAR_RULE_THICKNESS = 44
    OVERBAR_VERTICAL_GAP = 43
    RADICAL_DEGREE_BOTTOM_RAISE_PERCENT = 55
    RADICAL_DISPLAY_STYLE_VERTICAL_GAP = 50
    RADICAL_EXTRA_ASCENDER = 52
    RADICAL_KERN_AFTER_DEGREE = 54
    RADICAL_KERN_BEFORE_DEGREE = 53
    RADICAL_RULE_THICKNESS = 51
    RADICAL_VERTICAL_GAP = 49
    SCRIPT_PERCENT_SCALE_DOWN = 0
    SCRIPT_SCRIPT_PERCENT_SCALE_DOWN = 1
    SKEWED_FRACTION_HORIZONTAL_GAP = 41
    SKEWED_FRACTION_VERTICAL_GAP = 42
    SPACE_AFTER_SCRIPT = 17
    STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN = 25
    STACK_BOTTOM_SHIFT_DOWN = 24
    STACK_DISPLAY_STYLE_GAP_MIN = 27
    STACK_GAP_MIN = 26
    STACK_TOP_DISPLAY_STYLE_SHIFT_UP = 23
    STACK_TOP_SHIFT_UP = 22
    STRETCH_STACK_BOTTOM_SHIFT_DOWN = 29
    STRETCH_STACK_GAP_ABOVE_MIN = 30
    STRETCH_STACK_GAP_BELOW_MIN = 31
    STRETCH_STACK_TOP_SHIFT_UP = 28
    SUBSCRIPT_BASELINE_DROP_MIN = 10
    SUBSCRIPT_SHIFT_DOWN = 8
    SUBSCRIPT_TOP_MAX = 9
    SUB_SUPERSCRIPT_GAP_MIN = 15
    SUPERSCRIPT_BASELINE_DROP_MAX = 14
    SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT = 16
    SUPERSCRIPT_BOTTOM_MIN = 13
    SUPERSCRIPT_SHIFT_UP = 11
    SUPERSCRIPT_SHIFT_UP_CRAMPED = 12
    UNDERBAR_EXTRA_DESCENDER = 48
    UNDERBAR_RULE_THICKNESS = 47
    UNDERBAR_VERTICAL_GAP = 46
    UPPER_LIMIT_BASELINE_RISE_MIN = 19
    UPPER_LIMIT_GAP_MIN = 18

class ot_math_kern_t(GObject.GEnum):
    BOTTOM_LEFT = 3
    BOTTOM_RIGHT = 2
    TOP_LEFT = 1
    TOP_RIGHT = 0

class ot_meta_tag_t(GObject.GEnum):
    DESIGN_LANGUAGES = 1684827751
    SUPPORTED_LANGUAGES = 1936485991

class ot_metrics_tag_t(GObject.GEnum):
    CAP_HEIGHT = 1668311156
    HORIZONTAL_ASCENDER = 1751216995
    HORIZONTAL_CARET_OFFSET = 1751347046
    HORIZONTAL_CARET_RISE = 1751347827
    HORIZONTAL_CARET_RUN = 1751347822
    HORIZONTAL_CLIPPING_ASCENT = 1751346273
    HORIZONTAL_CLIPPING_DESCENT = 1751346276
    HORIZONTAL_DESCENDER = 1751413603
    HORIZONTAL_LINE_GAP = 1751934832
    STRIKEOUT_OFFSET = 1937011311
    STRIKEOUT_SIZE = 1937011315
    SUBSCRIPT_EM_X_OFFSET = 1935833199
    SUBSCRIPT_EM_X_SIZE = 1935833203
    SUBSCRIPT_EM_Y_OFFSET = 1935833455
    SUBSCRIPT_EM_Y_SIZE = 1935833459
    SUPERSCRIPT_EM_X_OFFSET = 1936750703
    SUPERSCRIPT_EM_X_SIZE = 1936750707
    SUPERSCRIPT_EM_Y_OFFSET = 1936750959
    SUPERSCRIPT_EM_Y_SIZE = 1936750963
    UNDERLINE_OFFSET = 1970168943
    UNDERLINE_SIZE = 1970168947
    VERTICAL_ASCENDER = 1986098019
    VERTICAL_CARET_OFFSET = 1986228070
    VERTICAL_CARET_RISE = 1986228851
    VERTICAL_CARET_RUN = 1986228846
    VERTICAL_DESCENDER = 1986294627
    VERTICAL_LINE_GAP = 1986815856
    X_HEIGHT = 2020108148

class script_t(GObject.GEnum):
    ADLAM = 1097100397
    AHOM = 1097363309
    ANATOLIAN_HIEROGLYPHS = 1215067511
    ARABIC = 1098015074
    ARMENIAN = 1098018158
    AVESTAN = 1098281844
    BALINESE = 1113681001
    BAMUM = 1113681269
    BASSA_VAH = 1113682803
    BATAK = 1113683051
    BENGALI = 1113943655
    BHAIKSUKI = 1114139507
    BOPOMOFO = 1114599535
    BRAHMI = 1114792296
    BRAILLE = 1114792297
    BUGINESE = 1114990441
    BUHID = 1114990692
    CANADIAN_SYLLABICS = 1130458739
    CARIAN = 1130459753
    CAUCASIAN_ALBANIAN = 1097295970
    CHAKMA = 1130457965
    CHAM = 1130914157
    CHEROKEE = 1130915186
    CHORASMIAN = 1130918515
    COMMON = 1517910393
    COPTIC = 1131376756
    CUNEIFORM = 1483961720
    CYPRIOT = 1131442804
    CYPRO_MINOAN = 1131441518
    CYRILLIC = 1132032620
    DESERET = 1148416628
    DEVANAGARI = 1147500129
    DIVES_AKURU = 1147756907
    DOGRA = 1148151666
    DUPLOYAN = 1148547180
    EGYPTIAN_HIEROGLYPHS = 1164409200
    ELBASAN = 1164730977
    ELYMAIC = 1164736877
    ETHIOPIC = 1165256809
    GEORGIAN = 1197830002
    GLAGOLITIC = 1198285159
    GOTHIC = 1198486632
    GRANTHA = 1198678382
    GREEK = 1198679403
    GUJARATI = 1198877298
    GUNJALA_GONDI = 1198485095
    GURMUKHI = 1198879349
    HAN = 1214344809
    HANGUL = 1214344807
    HANIFI_ROHINGYA = 1383032935
    HANUNOO = 1214344815
    HATRAN = 1214346354
    HEBREW = 1214603890
    HIRAGANA = 1214870113
    IMPERIAL_ARAMAIC = 1098018153
    INHERITED = 1516858984
    INSCRIPTIONAL_PAHLAVI = 1349020777
    INSCRIPTIONAL_PARTHIAN = 1349678185
    INVALID = 0
    JAVANESE = 1247901281
    KAITHI = 1265920105
    KANNADA = 1265525857
    KATAKANA = 1264676449
    KAWI = 1264678761
    KAYAH_LI = 1264675945
    KHAROSHTHI = 1265131890
    KHITAN_SMALL_SCRIPT = 1265202291
    KHMER = 1265134962
    KHOJKI = 1265135466
    KHUDAWADI = 1399418468
    LAO = 1281453935
    LATIN = 1281455214
    LEPCHA = 1281716323
    LIMBU = 1281977698
    LINEAR_A = 1281977953
    LINEAR_B = 1281977954
    LISU = 1281979253
    LYCIAN = 1283023721
    LYDIAN = 1283023977
    MAHAJANI = 1298229354
    MAKASAR = 1298230113
    MALAYALAM = 1298954605
    MANDAIC = 1298230884
    MANICHAEAN = 1298230889
    MARCHEN = 1298231907
    MASARAM_GONDI = 1198485101
    MATH = 1517122664
    MEDEFAIDRIN = 1298490470
    MEETEI_MAYEK = 1299473769
    MENDE_KIKAKUI = 1298493028
    MEROITIC_CURSIVE = 1298494051
    MEROITIC_HIEROGLYPHS = 1298494063
    MIAO = 1349284452
    MODI = 1299145833
    MONGOLIAN = 1299148391
    MRO = 1299345263
    MULTANI = 1299541108
    MYANMAR = 1299803506
    NABATAEAN = 1315070324
    NAG_MUNDARI = 1315006317
    NANDINAGARI = 1315008100
    NEWA = 1315272545
    NEW_TAI_LUE = 1415670901
    NKO = 1315663727
    NUSHU = 1316186229
    NYIAKENG_PUACHUE_HMONG = 1215131248
    OGHAM = 1332175213
    OLD_HUNGARIAN = 1215655527
    OLD_ITALIC = 1232363884
    OLD_NORTH_ARABIAN = 1315009122
    OLD_PERMIC = 1348825709
    OLD_PERSIAN = 1483761007
    OLD_SOGDIAN = 1399809903
    OLD_SOUTH_ARABIAN = 1398895202
    OLD_TURKIC = 1332898664
    OLD_UYGHUR = 1333094258
    OL_CHIKI = 1332503403
    ORIYA = 1332902241
    OSAGE = 1332963173
    OSMANYA = 1332964705
    PAHAWH_HMONG = 1215131239
    PALMYRENE = 1348562029
    PAU_CIN_HAU = 1348564323
    PHAGS_PA = 1349017959
    PHOENICIAN = 1349021304
    PSALTER_PAHLAVI = 1349020784
    REJANG = 1382706791
    RUNIC = 1383427698
    SAMARITAN = 1398893938
    SAURASHTRA = 1398895986
    SHARADA = 1399353956
    SHAVIAN = 1399349623
    SIDDHAM = 1399415908
    SIGNWRITING = 1399287415
    SINHALA = 1399418472
    SOGDIAN = 1399809892
    SORA_SOMPENG = 1399812705
    SOYOMBO = 1399814511
    SUNDANESE = 1400204900
    SYLOTI_NAGRI = 1400466543
    SYRIAC = 1400468067
    TAGALOG = 1416064103
    TAGBANWA = 1415669602
    TAI_LE = 1415670885
    TAI_THAM = 1281453665
    TAI_VIET = 1415673460
    TAKRI = 1415670642
    TAMIL = 1415671148
    TANGSA = 1416524641
    TANGUT = 1415671399
    TELUGU = 1415933045
    THAANA = 1416126817
    THAI = 1416126825
    TIBETAN = 1416192628
    TIFINAGH = 1415999079
    TIRHUTA = 1416196712
    TOTO = 1416590447
    UGARITIC = 1432838514
    UNKNOWN = 1517976186
    VAI = 1449224553
    VITHKUQI = 1449751656
    WANCHO = 1466132591
    WARANG_CITI = 1466004065
    YEZIDI = 1499822697
    YI = 1500080489
    ZANABAZAR_SQUARE = 1516334690

class style_tag_t(GObject.GEnum):
    ITALIC = 1769234796
    OPTICAL_SIZE = 1869640570
    SLANT_ANGLE = 1936486004
    SLANT_RATIO = 1399615092
    WEIGHT = 2003265652
    WIDTH = 2003072104

class unicode_combining_class_t(GObject.GEnum):
    ABOVE = 230
    ABOVE_LEFT = 228
    ABOVE_RIGHT = 232
    ATTACHED_ABOVE = 214
    ATTACHED_ABOVE_RIGHT = 216
    ATTACHED_BELOW = 202
    ATTACHED_BELOW_LEFT = 200
    BELOW = 220
    BELOW_LEFT = 218
    BELOW_RIGHT = 222
    CCC10 = 10
    CCC103 = 103
    CCC107 = 107
    CCC11 = 11
    CCC118 = 118
    CCC12 = 12
    CCC122 = 122
    CCC129 = 129
    CCC13 = 13
    CCC130 = 130
    CCC133 = 132
    CCC14 = 14
    CCC15 = 15
    CCC16 = 16
    CCC17 = 17
    CCC18 = 18
    CCC19 = 19
    CCC20 = 20
    CCC21 = 21
    CCC22 = 22
    CCC23 = 23
    CCC24 = 24
    CCC25 = 25
    CCC26 = 26
    CCC27 = 27
    CCC28 = 28
    CCC29 = 29
    CCC30 = 30
    CCC31 = 31
    CCC32 = 32
    CCC33 = 33
    CCC34 = 34
    CCC35 = 35
    CCC36 = 36
    CCC84 = 84
    CCC91 = 91
    DOUBLE_ABOVE = 234
    DOUBLE_BELOW = 233
    INVALID = 255
    IOTA_SUBSCRIPT = 240
    KANA_VOICING = 8
    LEFT = 224
    NOT_REORDERED = 0
    NUKTA = 7
    OVERLAY = 1
    RIGHT = 226
    VIRAMA = 9

class unicode_general_category_t(GObject.GEnum):
    CLOSE_PUNCTUATION = 18
    CONNECT_PUNCTUATION = 16
    CONTROL = 0
    CURRENCY_SYMBOL = 23
    DASH_PUNCTUATION = 17
    DECIMAL_NUMBER = 13
    ENCLOSING_MARK = 11
    FINAL_PUNCTUATION = 19
    FORMAT = 1
    INITIAL_PUNCTUATION = 20
    LETTER_NUMBER = 14
    LINE_SEPARATOR = 27
    LOWERCASE_LETTER = 5
    MATH_SYMBOL = 25
    MODIFIER_LETTER = 6
    MODIFIER_SYMBOL = 24
    NON_SPACING_MARK = 12
    OPEN_PUNCTUATION = 22
    OTHER_LETTER = 7
    OTHER_NUMBER = 15
    OTHER_PUNCTUATION = 21
    OTHER_SYMBOL = 26
    PARAGRAPH_SEPARATOR = 28
    PRIVATE_USE = 3
    SPACE_SEPARATOR = 29
    SPACING_MARK = 10
    SURROGATE = 4
    TITLECASE_LETTER = 8
    UNASSIGNED = 2
    UPPERCASE_LETTER = 9
